package com.rz.paas.test.camera;

import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Build;
import android.text.TextUtils;

import com.rz.paas.test.BuildConfig;

/**
 * author:zjp
 * date:2019/5/21
 */
public class PermissionUtil {

	public static void gotoPermission(Context context) {
		String brand = Build.BRAND;//手机厂商
		if (TextUtils.equals(brand.toLowerCase(), "redmi") || TextUtils.equals(brand.toLowerCase(), "xiaomi")) {
			PermissionUtil.gotoMiuiPermission(context);//小米
		} else if (TextUtils.equals(brand.toLowerCase(), "meizu")) {
			PermissionUtil.gotoMeizuPermission(context);
		} else if (TextUtils.equals(brand.toLowerCase(), "huawei") || TextUtils.equals(brand.toLowerCase(), "honor")) {
			PermissionUtil.gotoHuaweiPermission(context);
		} else {
			context.startActivity(PermissionUtil.getAppDetailSettingIntent(context));
		}
	}


	/**
	 * 跳转到miui的权限管理页面
	 */
	private static void gotoMiuiPermission(Context context) {
		try { // MIUI 8
			Intent localIntent = new Intent("miui.intent.action.APP_PERM_EDITOR");
			localIntent.setClassName("com.miui.securitycenter", "com.miui.permcenter.permissions.PermissionsEditorActivity");
			localIntent.putExtra("extra_pkgname", context.getPackageName());
			context.startActivity(localIntent);
		} catch (Exception e) {
			try { // MIUI 5/6/7
				Intent localIntent = new Intent("miui.intent.action.APP_PERM_EDITOR");
				localIntent.setClassName("com.miui.securitycenter", "com.miui.permcenter.permissions.AppPermissionsEditorActivity");
				localIntent.putExtra("extra_pkgname", context.getPackageName());
				context.startActivity(localIntent);
			} catch (Exception e1) { // 否则跳转到应用详情
				context.startActivity(getAppDetailSettingIntent(context));
			}
		}
	}

	/**
	 * 跳转到魅族的权限管理系统
	 */
	private static void gotoMeizuPermission(Context context) {
		try {
			Intent intent = new Intent("com.meizu.safe.security.SHOW_APPSEC");
			intent.addCategory(Intent.CATEGORY_DEFAULT);
			intent.putExtra("packageName", BuildConfig.APPLICATION_ID);
			context.startActivity(intent);
		} catch (Exception e) {
			e.printStackTrace();
			context.startActivity(getAppDetailSettingIntent(context));
		}
	}

	/**
	 * 华为的权限管理页面
	 */
	private static void gotoHuaweiPermission(Context context) {
		try {
			Intent intent = new Intent();
			intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
			ComponentName comp = new ComponentName("com.huawei.systemmanager", "com.huawei.permissionmanager.ui.MainActivity");//华为权限管理
			intent.setComponent(comp);
			context.startActivity(intent);
		} catch (Exception e) {
			e.printStackTrace();
			context.startActivity(getAppDetailSettingIntent(context));
		}

	}

	/**
	 * 获取应用详情页面intent（如果找不到要跳转的界面，也可以先把用户引导到系统设置页面）
	 */
	private static Intent getAppDetailSettingIntent(Context context) {
		Intent localIntent = new Intent();
		localIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
		localIntent.setAction("android.settings.APPLICATION_DETAILS_SETTINGS");
		localIntent.setData(Uri.fromParts("package", context.getPackageName(), null));

		return localIntent;
	}
}